# 替代状态

## 说明

可以使用备用状态进行多个数字项目设置间的对比分析，如购物篮分析的目的。一个状态拥有一组选择。

QlikView 开发者可以在 QlikView 文档内创建多种状态，然后应用这些状态到文档内指定的对象。最终用户可以创建这些对象（服务器对象）的副本，然后将这些对象置入不同的状态。

分离和替换状态之间最重要的区别是，全部给定状态的对象都将响应用户在该状态下所作的选择。给定状态的对象不会受其他状态中的用户选择。

备用状态 功能在加载脚本中不可访问。

信息注释QlikView 开发者可以启用备用状态功能，但应谨慎使用，因为它会给终端用户造成极大的混乱，因为自动屏幕指示器中不包括对象或表达式，或引用替换状态。由 QlikView 开发者决定是否向终端用户提供使用 StateName() 函数的信息。

信息注释如果数据在区域权限下或数据减少，备用状态选择项的可视化可能会失败。如果使用区域权限下的 QlikView 文档的用户不能访问数据，则无法将备用状态选择项可视化。

## 设置备用状态

执行下列步骤启用及设置替代状态：

1. 单击备用状态...（在文档属性：一般标签中）。  
   随即会打开备用状态对话框。
2. 点击 添加... 以创建数量的状态并进行命名。名称将被称为状态标识符。
3. 单击 确定 结束对话框。

QlikView 开发者可以从屏幕对象内创建新的备用状态。

从 QlikView 服务器中存取 QlikView 文档的终端用户可以使用备用状态，但不能创建备用状态。

## 指定对象状态

执行下列步骤指定一个对象的一个状态

1. 打开 属性 对话框并选择 一般 选项卡。
2. 为对象设置你想使用的状态标识符的 备用状态。

对象将从选择项剩下的文档中独立出来，除非其他对象设置了相同状态。

有两个状态是始终可用的； 默认状态和继承状态。默认状态是 QlikView 最常用的状态，它由 $ 表示。QlikView 文档通常处于默认状态。可以从高等级对象继承状态的对象有工作表和容器。可以继承的状态如下：文档-工作表-工作表对象工作表和工作表对象通常处于继承状态，除非它们被 QlikView 开发者所覆盖。

## 对比备用状态

你可以比较同一对象的两种状态。例如，您可以通过使用集合分析在表达式中指定状态，创建一个线图来显示同一轴上数据的两种状态。

示例：

如果您已定义状态 Group1 和 Group2，通过在折线图中显示这两个表达式，可以比较组字段 Adj.Close的平均值：

`Avg({[Group1]} [Adj.Close])`

`Avg({[Group2]} [Adj.Close])`

## 使用替换状态时的逻辑行为

按下清除按钮会影响所有状态。   
在 Inter Explorer plugin 中，一个菜单项目已被添加至清除按钮下拉菜单，允许用户清除特定状态的选择项。这一菜单在 Ajax 客户端不可用，但通过创建一个与特定状态清除操作有关的操作按钮便可实现相同功能。

按下后退和前进按钮会影响所有状态。没有任何一种机制能做到在特定状态中前后移动。

按下锁定和解锁按钮会影响所有状态。不可能使用这些按钮锁定和解锁特定状态。在特定状态中，右键单击列表框上的菜单可以锁定状态中的特定字段。

选择项菜单中的菜单项目适用于所有状态。没有任何一种机制能够影响此菜单中的特定状态。

替换状态可以用于链接对象。该状态可以应用于所有对象。改变一个链接对象中的状态会导致其他链接对象的状态也跟着改变。

信息注释在所有状态中启动触发器。

可以设置操作发生在特定状态中。一个众所周知的例外是运行宏定制动作。可以设置其能够在特定状态下运行；然而在任何状态下都能启用宏。

使用缺少状态（由开发者移除的状态）的对象将回复到默认状态，尽管替换状态下拉框中会显示以下信息：   
`AlternateStateName <unavailable>`。

信息注释

您只能使用状态参数与替代状态相关的字段函数。

[字段函数](https://help.qlik.com/zh-CN/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/field-functions-charts.htm)

### 备用状态的变量

可以指定展开变量时要使用的状态。特定状态下的更改不会影响在其他状态下展开的变量值。如果不指定状态，则变量将以默认状态展开。

示例：

如果有一个名为 `MyState` 的状态和一个名为 `vMyVar` 的变量：

* `$(vMyVar)` 以默认状态展开变量。
* `$({MyState} vMyVar)` 以 `MyState` 状态展开变量。

## 了解详情

* [集合分析和集合表达式](https://help.qlik.com/zh-CN/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)